﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;


namespace ClusterAggregation.Clusterers
{
    using Datum;
    using DataSets;
    
    /**
     *  Simple Interface for clusterer algorithms
     */
    public interface IClusterer
    {
        /**
         *  This function is the API to cluster data (arg) with the distance function (distFunc) into k different clusters.
         *  @param arg (AData) [IN], input data.
         *  @param distFunc (ISimilarity) [IN], the data will be clustered using this distance function.
         *  @param k (int) [IN], the number of clusterings.
         *  @return CPartition the clustered dataset as a partition.
         */    
        CPartition cluster(AData[] arg, ISimilarity distFunc,int k); 
    }
}
